package com.qiangesoft.ratelimit.core.redis;

import com.qiangesoft.ratelimit.core.LimitType;

import java.lang.annotation.*;

/**
 * 限流注解
 *
 * @author qiangesoft
 * @date 2024-03-19
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisRateLimit {

    /**
     * 限流类型
     */
    LimitType limitType() default LimitType.SYSTEM;

    /**
     * 限流key：默认为[类名全路径.方法名]
     */
    String key() default "";

    /**
     * 限流时间：[单位秒]
     */
    int time() default 1;

    /**
     * 限流次数
     */
    int count() default 5;

}
